<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Dem Bones: Dem::DemBonesExt&lt; _Scalar, _AniMeshScalar &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="DemBones_small.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Dem Bones
   &#160;<span id="projectnumber">1.2.0</span>
   </div>
   <div id="projectbrief">Skinning Decomposition Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('class_dem_1_1_dem_bones_ext.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="class_dem_1_1_dem_bones_ext-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Dem::DemBonesExt&lt; _Scalar, _AniMeshScalar &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Extended class to handle hierarchical skeleton with local rotations/translations and bind matrices.  
 <a href="class_dem_1_1_dem_bones_ext.html#details">More...</a></p>

<p><code>#include &quot;<a class="el" href="_dem_bones_ext_8h_source.html">DemBones/DemBonesExt.h</a>&quot;</code></p>
<div class="dynheader">
Inheritance diagram for Dem::DemBonesExt&lt; _Scalar, _AniMeshScalar &gt;:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_dem_1_1_dem_bones_ext.png" usemap="#Dem::DemBonesExt_3C_20_5FScalar_2C_20_5FAniMeshScalar_20_3E_map" alt=""/>
  <map id="Dem::DemBonesExt_3C_20_5FScalar_2C_20_5FAniMeshScalar_20_3E_map" name="Dem::DemBonesExt_3C_20_5FScalar_2C_20_5FAniMeshScalar_20_3E_map">
<area href="class_dem_1_1_dem_bones.html" title="Smooth skinning decomposition with rigid bones and sparse, convex weights." alt="Dem::DemBones&lt; _Scalar, _AniMeshScalar &gt;" shape="rect" coords="0,0,291,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a7bc7c59a436c5a0d217adef008bb0eb3"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#a7bc7c59a436c5a0d217adef008bb0eb3">MatrixX</a> = Eigen::Matrix&lt; _Scalar, Eigen::Dynamic, Eigen::Dynamic &gt;</td></tr>
<tr class="separator:a7bc7c59a436c5a0d217adef008bb0eb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7da7e93c85500a1a23855d85c5db08c6"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#a7da7e93c85500a1a23855d85c5db08c6">Matrix4</a> = Eigen::Matrix&lt; _Scalar, 4, 4 &gt;</td></tr>
<tr class="separator:a7da7e93c85500a1a23855d85c5db08c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af372c94208c01a28f9a57b6377223470"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#af372c94208c01a28f9a57b6377223470">Matrix3</a> = Eigen::Matrix&lt; _Scalar, 3, 3 &gt;</td></tr>
<tr class="separator:af372c94208c01a28f9a57b6377223470"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4ea2e0183a87df169cb893c1a699709"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#ae4ea2e0183a87df169cb893c1a699709">VectorX</a> = Eigen::Matrix&lt; _Scalar, Eigen::Dynamic, 1 &gt;</td></tr>
<tr class="separator:ae4ea2e0183a87df169cb893c1a699709"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a033b6fd2dcf075cd48ed433f8a33cca1"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#a033b6fd2dcf075cd48ed433f8a33cca1">Vector4</a> = Eigen::Matrix&lt; _Scalar, 4, 1 &gt;</td></tr>
<tr class="separator:a033b6fd2dcf075cd48ed433f8a33cca1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af058734937a4b845b089291d4392f8ef"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#af058734937a4b845b089291d4392f8ef">Vector3</a> = Eigen::Matrix&lt; _Scalar, 3, 1 &gt;</td></tr>
<tr class="separator:af058734937a4b845b089291d4392f8ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a039349271cd9bd256ba359f0eab2ac7c"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#a039349271cd9bd256ba359f0eab2ac7c">SparseMatrix</a> = Eigen::SparseMatrix&lt; _Scalar &gt;</td></tr>
<tr class="separator:a039349271cd9bd256ba359f0eab2ac7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedb230a6a7eede0d751355b385e58938"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#aedb230a6a7eede0d751355b385e58938">Triplet</a> = Eigen::Triplet&lt; _Scalar &gt;</td></tr>
<tr class="separator:aedb230a6a7eede0d751355b385e58938"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_class_dem_1_1_dem_bones"><td colspan="2" onclick="javascript:toggleInherit('pub_types_class_dem_1_1_dem_bones')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="class_dem_1_1_dem_bones.html">Dem::DemBones&lt; _Scalar, _AniMeshScalar &gt;</a></td></tr>
<tr class="memitem:a5e4b99c4a233b477116204f9f1fae9cd inherit pub_types_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a> = Eigen::Matrix&lt; _Scalar, Eigen::Dynamic, Eigen::Dynamic &gt;</td></tr>
<tr class="separator:a5e4b99c4a233b477116204f9f1fae9cd inherit pub_types_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2a018d01cdb2a44f8ee964ddb4e8278 inherit pub_types_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#ad2a018d01cdb2a44f8ee964ddb4e8278">Matrix4</a> = Eigen::Matrix&lt; _Scalar, 4, 4 &gt;</td></tr>
<tr class="separator:ad2a018d01cdb2a44f8ee964ddb4e8278 inherit pub_types_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed480cb1bda1b33f20171f7f847c1b06 inherit pub_types_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#aed480cb1bda1b33f20171f7f847c1b06">Matrix3</a> = Eigen::Matrix&lt; _Scalar, 3, 3 &gt;</td></tr>
<tr class="separator:aed480cb1bda1b33f20171f7f847c1b06 inherit pub_types_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee5cdd95063d2b11d8a461f0e2efa9f9 inherit pub_types_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#aee5cdd95063d2b11d8a461f0e2efa9f9">VectorX</a> = Eigen::Matrix&lt; _Scalar, Eigen::Dynamic, 1 &gt;</td></tr>
<tr class="separator:aee5cdd95063d2b11d8a461f0e2efa9f9 inherit pub_types_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c30c98fb363f888345d86e5a11acd14 inherit pub_types_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a0c30c98fb363f888345d86e5a11acd14">Vector4</a> = Eigen::Matrix&lt; _Scalar, 4, 1 &gt;</td></tr>
<tr class="separator:a0c30c98fb363f888345d86e5a11acd14 inherit pub_types_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9404399e2528175da18fd80d7d4fc4f9 inherit pub_types_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a9404399e2528175da18fd80d7d4fc4f9">Vector3</a> = Eigen::Matrix&lt; _Scalar, 3, 1 &gt;</td></tr>
<tr class="separator:a9404399e2528175da18fd80d7d4fc4f9 inherit pub_types_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8ea3a6b166652e954decbf135b3255b inherit pub_types_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#aa8ea3a6b166652e954decbf135b3255b">SparseMatrix</a> = Eigen::SparseMatrix&lt; _Scalar &gt;</td></tr>
<tr class="separator:aa8ea3a6b166652e954decbf135b3255b inherit pub_types_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6f69fb5e7a91330f21f48ad9f019212 inherit pub_types_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#ac6f69fb5e7a91330f21f48ad9f019212">Triplet</a> = Eigen::Triplet&lt; _Scalar &gt;</td></tr>
<tr class="separator:ac6f69fb5e7a91330f21f48ad9f019212 inherit pub_types_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a582382217aeefd8d2fb93bcb6aad9875"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#a582382217aeefd8d2fb93bcb6aad9875">DemBonesExt</a> ()</td></tr>
<tr class="memdesc:a582382217aeefd8d2fb93bcb6aad9875"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor and setting default parameters.  <a href="class_dem_1_1_dem_bones_ext.html#a582382217aeefd8d2fb93bcb6aad9875">More...</a><br /></td></tr>
<tr class="separator:a582382217aeefd8d2fb93bcb6aad9875"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fd6e95de36adee0d487786315da551f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#a9fd6e95de36adee0d487786315da551f">clear</a> ()</td></tr>
<tr class="memdesc:a9fd6e95de36adee0d487786315da551f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear all data.  <a href="class_dem_1_1_dem_bones_ext.html#a9fd6e95de36adee0d487786315da551f">More...</a><br /></td></tr>
<tr class="separator:a9fd6e95de36adee0d487786315da551f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4be2b221fa273518adbd3fa2e2bc86d0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#a4be2b221fa273518adbd3fa2e2bc86d0">computeRTB</a> (int s, <a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a> &amp;lr, <a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a> &amp;lt, <a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a> &amp;gb, <a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a> &amp;lbr, <a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a> &amp;lbt, bool degreeRot=true)</td></tr>
<tr class="memdesc:a4be2b221fa273518adbd3fa2e2bc86d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Local rotations, translations and global bind matrices of a subject.  <a href="class_dem_1_1_dem_bones_ext.html#a4be2b221fa273518adbd3fa2e2bc86d0">More...</a><br /></td></tr>
<tr class="separator:a4be2b221fa273518adbd3fa2e2bc86d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_dem_1_1_dem_bones"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_dem_1_1_dem_bones')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_dem_1_1_dem_bones.html">Dem::DemBones&lt; _Scalar, _AniMeshScalar &gt;</a></td></tr>
<tr class="memitem:aa5bb61bfa1a60d355f4cce7f9cc60d5c inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#aa5bb61bfa1a60d355f4cce7f9cc60d5c">DemBones</a> ()</td></tr>
<tr class="memdesc:aa5bb61bfa1a60d355f4cce7f9cc60d5c inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor and setting default parameters.  <a href="class_dem_1_1_dem_bones.html#aa5bb61bfa1a60d355f4cce7f9cc60d5c">More...</a><br /></td></tr>
<tr class="separator:aa5bb61bfa1a60d355f4cce7f9cc60d5c inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18bcd81e4238a4a298c4ee4ca78ae2fb inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a18bcd81e4238a4a298c4ee4ca78ae2fb">clear</a> ()</td></tr>
<tr class="memdesc:a18bcd81e4238a4a298c4ee4ca78ae2fb inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear all data.  <a href="class_dem_1_1_dem_bones.html#a18bcd81e4238a4a298c4ee4ca78ae2fb">More...</a><br /></td></tr>
<tr class="separator:a18bcd81e4238a4a298c4ee4ca78ae2fb inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1fcf96f35f6c4662fd95998225b9bda inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#af1fcf96f35f6c4662fd95998225b9bda">init</a> ()</td></tr>
<tr class="memdesc:af1fcf96f35f6c4662fd95998225b9bda inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize missing skinning weights and/or bone transformations.  <a href="class_dem_1_1_dem_bones.html#af1fcf96f35f6c4662fd95998225b9bda">More...</a><br /></td></tr>
<tr class="separator:af1fcf96f35f6c4662fd95998225b9bda inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a673287121735ea64e0e4c244bacc432b inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a673287121735ea64e0e4c244bacc432b">computeTranformations</a> ()</td></tr>
<tr class="memdesc:a673287121735ea64e0e4c244bacc432b inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update bone transformations by running <a class="el" href="class_dem_1_1_dem_bones.html#a9afbf2acccc4126e1e76c2a41f3ac649" title="[parameter] Number of bone transformations update iterations per global iteration,...">nTransIters</a> iterations with <a class="el" href="class_dem_1_1_dem_bones.html#a53f9859cd63a8c51f6f50fdfa7251681" title="[parameter] Translations affinity soft constraint, default = 10.0">transAffine</a> and <a class="el" href="class_dem_1_1_dem_bones.html#a3b125934b440ebcebb3ba44acda41366" title="[parameter] p-norm for bone translations affinity soft constraint, default = 4.0">transAffineNorm</a> regularizers.  <a href="class_dem_1_1_dem_bones.html#a673287121735ea64e0e4c244bacc432b">More...</a><br /></td></tr>
<tr class="separator:a673287121735ea64e0e4c244bacc432b inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3101275f535d5c2435747b8ea5406f7d inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a3101275f535d5c2435747b8ea5406f7d">computeWeights</a> ()</td></tr>
<tr class="memdesc:a3101275f535d5c2435747b8ea5406f7d inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update skinning weights by running <a class="el" href="class_dem_1_1_dem_bones.html#ae381fbe6610c9f4b169b16106dfbae94" title="[parameter] Number of weights update iterations per global iteration, default = 3">nWeightsIters</a> iterations with <a class="el" href="class_dem_1_1_dem_bones.html#aba10dbe999f33dfb5456c0f3554700a3" title="[parameter] Weights smoothness soft constraint, default = 1e-4">weightsSmooth</a> and <a class="el" href="class_dem_1_1_dem_bones.html#a26babdede07e8e220002e420b9161aa9" title="[parameter] Step size for the weights smoothness soft constraint, default = 1.0">weightsSmoothStep</a> regularizers.  <a href="class_dem_1_1_dem_bones.html#a3101275f535d5c2435747b8ea5406f7d">More...</a><br /></td></tr>
<tr class="separator:a3101275f535d5c2435747b8ea5406f7d inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8d2821c730539490ad6ce956a0b62a6 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#ac8d2821c730539490ad6ce956a0b62a6">compute</a> ()</td></tr>
<tr class="memdesc:ac8d2821c730539490ad6ce956a0b62a6 inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Skinning decomposition by <a class="el" href="class_dem_1_1_dem_bones.html#aa7f14b41174dc22e81b089d0c5a56950" title="[parameter] Number of global iterations, default = 30">nIters</a> iterations of alternative updating weights and bone transformations.  <a href="class_dem_1_1_dem_bones.html#ac8d2821c730539490ad6ce956a0b62a6">More...</a><br /></td></tr>
<tr class="separator:ac8d2821c730539490ad6ce956a0b62a6 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a050b398499f5daa9e42119b0774f25d0 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">_Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a050b398499f5daa9e42119b0774f25d0">rmse</a> ()</td></tr>
<tr class="separator:a050b398499f5daa9e42119b0774f25d0 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14f83e468b4a1eb6e2c6c951e7b5a4d3 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a14f83e468b4a1eb6e2c6c951e7b5a4d3">cbInitSplitBegin</a> ()</td></tr>
<tr class="memdesc:a14f83e468b4a1eb6e2c6c951e7b5a4d3 inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function invoked before each spliting of bone clusters in initialization.  <a href="class_dem_1_1_dem_bones.html#a14f83e468b4a1eb6e2c6c951e7b5a4d3">More...</a><br /></td></tr>
<tr class="separator:a14f83e468b4a1eb6e2c6c951e7b5a4d3 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb37e92f6b19ed95f4d2793c5f3dd300 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#aeb37e92f6b19ed95f4d2793c5f3dd300">cbInitSplitEnd</a> ()</td></tr>
<tr class="memdesc:aeb37e92f6b19ed95f4d2793c5f3dd300 inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function invoked after each spliting of bone clusters in initialization.  <a href="class_dem_1_1_dem_bones.html#aeb37e92f6b19ed95f4d2793c5f3dd300">More...</a><br /></td></tr>
<tr class="separator:aeb37e92f6b19ed95f4d2793c5f3dd300 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af43507c4ae91a4bf6550bc2afc25c023 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#af43507c4ae91a4bf6550bc2afc25c023">cbIterBegin</a> ()</td></tr>
<tr class="memdesc:af43507c4ae91a4bf6550bc2afc25c023 inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function invoked before each global iteration update.  <a href="class_dem_1_1_dem_bones.html#af43507c4ae91a4bf6550bc2afc25c023">More...</a><br /></td></tr>
<tr class="separator:af43507c4ae91a4bf6550bc2afc25c023 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a978a27bd67c19d78bd36242a29876212 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a978a27bd67c19d78bd36242a29876212">cbIterEnd</a> ()</td></tr>
<tr class="memdesc:a978a27bd67c19d78bd36242a29876212 inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function invoked after each global iteration update, stop iteration if return true.  <a href="class_dem_1_1_dem_bones.html#a978a27bd67c19d78bd36242a29876212">More...</a><br /></td></tr>
<tr class="separator:a978a27bd67c19d78bd36242a29876212 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4698b8e39c770e51aea7122689edcdf inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#ac4698b8e39c770e51aea7122689edcdf">cbWeightsBegin</a> ()</td></tr>
<tr class="memdesc:ac4698b8e39c770e51aea7122689edcdf inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function invoked before each skinning weights update.  <a href="class_dem_1_1_dem_bones.html#ac4698b8e39c770e51aea7122689edcdf">More...</a><br /></td></tr>
<tr class="separator:ac4698b8e39c770e51aea7122689edcdf inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dc51d56fe59c8c3e1e221b9819360f9 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a9dc51d56fe59c8c3e1e221b9819360f9">cbWeightsEnd</a> ()</td></tr>
<tr class="memdesc:a9dc51d56fe59c8c3e1e221b9819360f9 inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function invoked after each skinning weights update.  <a href="class_dem_1_1_dem_bones.html#a9dc51d56fe59c8c3e1e221b9819360f9">More...</a><br /></td></tr>
<tr class="separator:a9dc51d56fe59c8c3e1e221b9819360f9 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d5a50f2d4622a4823065cdca03ac9aa inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a5d5a50f2d4622a4823065cdca03ac9aa">cbTranformationsBegin</a> ()</td></tr>
<tr class="memdesc:a5d5a50f2d4622a4823065cdca03ac9aa inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function invoked before each bone transformations update.  <a href="class_dem_1_1_dem_bones.html#a5d5a50f2d4622a4823065cdca03ac9aa">More...</a><br /></td></tr>
<tr class="separator:a5d5a50f2d4622a4823065cdca03ac9aa inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8008b672232b4d2f4081e00eea2ff062 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a8008b672232b4d2f4081e00eea2ff062">cbTransformationsEnd</a> ()</td></tr>
<tr class="memdesc:a8008b672232b4d2f4081e00eea2ff062 inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function invoked after each bone transformations update.  <a href="class_dem_1_1_dem_bones.html#a8008b672232b4d2f4081e00eea2ff062">More...</a><br /></td></tr>
<tr class="separator:a8008b672232b4d2f4081e00eea2ff062 inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a938532a49b8ae162b866f9b59a75a7ab inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a938532a49b8ae162b866f9b59a75a7ab">cbTransformationsIterBegin</a> ()</td></tr>
<tr class="memdesc:a938532a49b8ae162b866f9b59a75a7ab inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function invoked before each local bone transformations update iteration.  <a href="class_dem_1_1_dem_bones.html#a938532a49b8ae162b866f9b59a75a7ab">More...</a><br /></td></tr>
<tr class="separator:a938532a49b8ae162b866f9b59a75a7ab inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaf326326d6094637dd0a995a778241f inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#aaaf326326d6094637dd0a995a778241f">cbTransformationsIterEnd</a> ()</td></tr>
<tr class="memdesc:aaaf326326d6094637dd0a995a778241f inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function invoked after each local bone transformations update iteration, stop iteration if return true.  <a href="class_dem_1_1_dem_bones.html#aaaf326326d6094637dd0a995a778241f">More...</a><br /></td></tr>
<tr class="separator:aaaf326326d6094637dd0a995a778241f inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6391078901046e3acbd582dba6654fdd inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a6391078901046e3acbd582dba6654fdd">cbWeightsIterBegin</a> ()</td></tr>
<tr class="memdesc:a6391078901046e3acbd582dba6654fdd inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function invoked before each local weights update iteration.  <a href="class_dem_1_1_dem_bones.html#a6391078901046e3acbd582dba6654fdd">More...</a><br /></td></tr>
<tr class="separator:a6391078901046e3acbd582dba6654fdd inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a610c7725152df6465cd5f49311a3eeed inherit pub_methods_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a610c7725152df6465cd5f49311a3eeed">cbWeightsIterEnd</a> ()</td></tr>
<tr class="memdesc:a610c7725152df6465cd5f49311a3eeed inherit pub_methods_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function invoked after each local weights update iteration, stop iteration if return true.  <a href="class_dem_1_1_dem_bones.html#a610c7725152df6465cd5f49311a3eeed">More...</a><br /></td></tr>
<tr class="separator:a610c7725152df6465cd5f49311a3eeed inherit pub_methods_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:aebbc9093e05f8d3a466fe40610f5289d"><td class="memItemLeft" align="right" valign="top">Eigen::VectorXd&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#aebbc9093e05f8d3a466fe40610f5289d">fTime</a></td></tr>
<tr class="memdesc:aebbc9093e05f8d3a466fe40610f5289d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Timestamps for bone transformations <a class="el" href="class_dem_1_1_dem_bones.html#a3462ee570b8b809ecff8739000783813" title="Bone transformations, size = [4*nF*4, 4*nB], m.blk4(k, j) is the 4*4 relative transformation matrix o...">m</a>, [<code>size</code>] = <a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>, <a class="el" href="class_dem_1_1_dem_bones_ext.html#aebbc9093e05f8d3a466fe40610f5289d" title="Timestamps for bone transformations m, [size] = nS, fTime(k) is the timestamp of frame k.">fTime</a>(<code>k</code>) is the timestamp of frame <code>k</code>.  <a href="class_dem_1_1_dem_bones_ext.html#aebbc9093e05f8d3a466fe40610f5289d">More...</a><br /></td></tr>
<tr class="separator:aebbc9093e05f8d3a466fe40610f5289d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcf732ef4b030e907b7054232cc255f5"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#afcf732ef4b030e907b7054232cc255f5">boneName</a></td></tr>
<tr class="memdesc:afcf732ef4b030e907b7054232cc255f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Name of bones, [<code>size</code>] = <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>, <a class="el" href="class_dem_1_1_dem_bones_ext.html#afcf732ef4b030e907b7054232cc255f5" title="Name of bones, [size] = nB, boneName(j) is the name bone of j.">boneName</a>(<code>j</code>) is the name bone of <code>j</code>.  <a href="class_dem_1_1_dem_bones_ext.html#afcf732ef4b030e907b7054232cc255f5">More...</a><br /></td></tr>
<tr class="separator:afcf732ef4b030e907b7054232cc255f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad740868b3bc6cdf34e6e2ec5f35e24d7"><td class="memItemLeft" align="right" valign="top">Eigen::VectorXi&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7">parent</a></td></tr>
<tr class="memdesc:ad740868b3bc6cdf34e6e2ec5f35e24d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parent bone index, [<code>size</code>] = <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>, <a class="el" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7" title="Parent bone index, [size] = nB, parent(j) is the index of parent bone of j, parent(j) = -1 if j has n...">parent</a>(<code>j</code>) is the index of parent bone of <code>j</code>, <a class="el" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7" title="Parent bone index, [size] = nB, parent(j) is the index of parent bone of j, parent(j) = -1 if j has n...">parent</a>(<code>j</code>) = -1 if <code>j</code> has no parent.  <a href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7">More...</a><br /></td></tr>
<tr class="separator:ad740868b3bc6cdf34e6e2ec5f35e24d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85422fd18d48c40485f05d77b1c4cf4d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#a85422fd18d48c40485f05d77b1c4cf4d">bind</a></td></tr>
<tr class="memdesc:a85422fd18d48c40485f05d77b1c4cf4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Original bind pre-matrix, [<code>size</code>] = [4*<a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>, 4*<a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>], <a class="el" href="class_dem_1_1_dem_bones_ext.html#a85422fd18d48c40485f05d77b1c4cf4d" title="Original bind pre-matrix, [size] = [4*nS, 4*nB], bind.block(4*s, 4*j, 4, 4) is the global bind matrix...">bind</a>.<em>block</em>(4*<code>s</code>, 4*<code>j</code>, 4, 4) is the global bind matrix of bone <code>j</code> on subject <code>s</code> at the rest pose.  <a href="class_dem_1_1_dem_bones_ext.html#a85422fd18d48c40485f05d77b1c4cf4d">More...</a><br /></td></tr>
<tr class="separator:a85422fd18d48c40485f05d77b1c4cf4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3785152d056860bc55febcad64837ef3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#a3785152d056860bc55febcad64837ef3">preMulInv</a></td></tr>
<tr class="memdesc:a3785152d056860bc55febcad64837ef3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse pre-multiplication matrices, [<code>size</code>] = [4*<a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>, 4*<a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>], <a class="el" href="class_dem_1_1_dem_bones_ext.html#a3785152d056860bc55febcad64837ef3" title="Inverse pre-multiplication matrices, [size] = [4*nS, 4*nB], preMulInv.block(4*s, 4*j,...">preMulInv</a>.<em>block</em>(4*<code>s</code>, 4*<code>j</code>, 4, 4) is the inverse of pre-local transformation of bone <code>j</code> on subject <code>s</code>.  <a href="class_dem_1_1_dem_bones_ext.html#a3785152d056860bc55febcad64837ef3">More...</a><br /></td></tr>
<tr class="separator:a3785152d056860bc55febcad64837ef3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30f4bfbe88493adecae038035e0b33be"><td class="memItemLeft" align="right" valign="top">Eigen::MatrixXi&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#a30f4bfbe88493adecae038035e0b33be">rotOrder</a></td></tr>
<tr class="memdesc:a30f4bfbe88493adecae038035e0b33be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotation order, [<code>size</code>] = [3*<a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>, <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>], <a class="el" href="class_dem_1_1_dem_bones_ext.html#a30f4bfbe88493adecae038035e0b33be" title="Rotation order, [size] = [3*nS, nB], rotOrder.col(j).segment&lt;3&gt;(3*s) is the rotation order of bone j ...">rotOrder</a>.<em>col</em>(<code>j</code>).<em>segment&lt;3&gt;</em>(3*<code>s</code>) is the rotation order of bone <code>j</code> on subject <code>s</code>, 0=<code>X</code>, 1=<code>Y</code>, 2=<code>Z</code>, e.g. {0, 1, 2} is <code>XYZ</code> order <br  />
  <a href="class_dem_1_1_dem_bones_ext.html#a30f4bfbe88493adecae038035e0b33be">More...</a><br /></td></tr>
<tr class="separator:a30f4bfbe88493adecae038035e0b33be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a6a2004f16832cd3f97c22789147a8a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#a9a6a2004f16832cd3f97c22789147a8a">orient</a></td></tr>
<tr class="memdesc:a9a6a2004f16832cd3f97c22789147a8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Orientations of bones, [<code>size</code>] = [3*<a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>, <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>], <code>orient</code>.<em>col</em>(<code>j</code>).<em>segment&lt;3&gt;</em>(3*<code>s</code>) is the(<code>rx</code>, <code>ry</code>, <code>rz</code>) orientation of bone <code>j</code> in degree.  <a href="class_dem_1_1_dem_bones_ext.html#a9a6a2004f16832cd3f97c22789147a8a">More...</a><br /></td></tr>
<tr class="separator:a9a6a2004f16832cd3f97c22789147a8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92939c0de147f8075754d9cbf66113fc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones_ext.html#a92939c0de147f8075754d9cbf66113fc">bindUpdate</a></td></tr>
<tr class="memdesc:a92939c0de147f8075754d9cbf66113fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bind transformation update, 0=keep original, 1=set translations to p-norm centroids (using <a class="el" href="class_dem_1_1_dem_bones.html#a3b125934b440ebcebb3ba44acda41366" title="[parameter] p-norm for bone translations affinity soft constraint, default = 4.0">transAffineNorm</a>) and rotations to identity, 2=do 1 and group joints.  <a href="class_dem_1_1_dem_bones_ext.html#a92939c0de147f8075754d9cbf66113fc">More...</a><br /></td></tr>
<tr class="separator:a92939c0de147f8075754d9cbf66113fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_attribs_class_dem_1_1_dem_bones"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_class_dem_1_1_dem_bones')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="class_dem_1_1_dem_bones.html">Dem::DemBones&lt; _Scalar, _AniMeshScalar &gt;</a></td></tr>
<tr class="memitem:aa7f14b41174dc22e81b089d0c5a56950 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#aa7f14b41174dc22e81b089d0c5a56950">nIters</a></td></tr>
<tr class="memdesc:aa7f14b41174dc22e81b089d0c5a56950 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">[<code>parameter</code>] Number of global iterations, <code>default</code> = 30  <a href="class_dem_1_1_dem_bones.html#aa7f14b41174dc22e81b089d0c5a56950">More...</a><br /></td></tr>
<tr class="separator:aa7f14b41174dc22e81b089d0c5a56950 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9079e21634edb0dd2502bfc3a1eedbd0 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a9079e21634edb0dd2502bfc3a1eedbd0">nInitIters</a></td></tr>
<tr class="memdesc:a9079e21634edb0dd2502bfc3a1eedbd0 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">[<code>parameter</code>] Number of clustering update iterations in the initalization, <code>default</code> = 10  <a href="class_dem_1_1_dem_bones.html#a9079e21634edb0dd2502bfc3a1eedbd0">More...</a><br /></td></tr>
<tr class="separator:a9079e21634edb0dd2502bfc3a1eedbd0 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9afbf2acccc4126e1e76c2a41f3ac649 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a9afbf2acccc4126e1e76c2a41f3ac649">nTransIters</a></td></tr>
<tr class="memdesc:a9afbf2acccc4126e1e76c2a41f3ac649 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">[<code>parameter</code>] Number of bone transformations update iterations per global iteration, <code>default</code> = 5  <a href="class_dem_1_1_dem_bones.html#a9afbf2acccc4126e1e76c2a41f3ac649">More...</a><br /></td></tr>
<tr class="separator:a9afbf2acccc4126e1e76c2a41f3ac649 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53f9859cd63a8c51f6f50fdfa7251681 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">_Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a53f9859cd63a8c51f6f50fdfa7251681">transAffine</a></td></tr>
<tr class="memdesc:a53f9859cd63a8c51f6f50fdfa7251681 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">[<code>parameter</code>] Translations affinity soft constraint, <code>default</code> = 10.0  <a href="class_dem_1_1_dem_bones.html#a53f9859cd63a8c51f6f50fdfa7251681">More...</a><br /></td></tr>
<tr class="separator:a53f9859cd63a8c51f6f50fdfa7251681 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b125934b440ebcebb3ba44acda41366 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">_Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a3b125934b440ebcebb3ba44acda41366">transAffineNorm</a></td></tr>
<tr class="memdesc:a3b125934b440ebcebb3ba44acda41366 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">[<code>parameter</code>] p-norm for bone translations affinity soft constraint, <code>default</code> = 4.0  <a href="class_dem_1_1_dem_bones.html#a3b125934b440ebcebb3ba44acda41366">More...</a><br /></td></tr>
<tr class="separator:a3b125934b440ebcebb3ba44acda41366 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae381fbe6610c9f4b169b16106dfbae94 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#ae381fbe6610c9f4b169b16106dfbae94">nWeightsIters</a></td></tr>
<tr class="memdesc:ae381fbe6610c9f4b169b16106dfbae94 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">[<code>parameter</code>] Number of weights update iterations per global iteration, <code>default</code> = 3  <a href="class_dem_1_1_dem_bones.html#ae381fbe6610c9f4b169b16106dfbae94">More...</a><br /></td></tr>
<tr class="separator:ae381fbe6610c9f4b169b16106dfbae94 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6ded1630b2bac8d192e6134823a37f8 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#ad6ded1630b2bac8d192e6134823a37f8">nnz</a></td></tr>
<tr class="memdesc:ad6ded1630b2bac8d192e6134823a37f8 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">[<code>parameter</code>] Number of non-zero weights per vertex, <code>default</code> = 8  <a href="class_dem_1_1_dem_bones.html#ad6ded1630b2bac8d192e6134823a37f8">More...</a><br /></td></tr>
<tr class="separator:ad6ded1630b2bac8d192e6134823a37f8 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba10dbe999f33dfb5456c0f3554700a3 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">_Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#aba10dbe999f33dfb5456c0f3554700a3">weightsSmooth</a></td></tr>
<tr class="memdesc:aba10dbe999f33dfb5456c0f3554700a3 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">[<code>parameter</code>] Weights smoothness soft constraint, <code>default</code> = 1e-4  <a href="class_dem_1_1_dem_bones.html#aba10dbe999f33dfb5456c0f3554700a3">More...</a><br /></td></tr>
<tr class="separator:aba10dbe999f33dfb5456c0f3554700a3 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26babdede07e8e220002e420b9161aa9 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">_Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a26babdede07e8e220002e420b9161aa9">weightsSmoothStep</a></td></tr>
<tr class="memdesc:a26babdede07e8e220002e420b9161aa9 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">[<code>parameter</code>] Step size for the weights smoothness soft constraint, <code>default</code> = 1.0  <a href="class_dem_1_1_dem_bones.html#a26babdede07e8e220002e420b9161aa9">More...</a><br /></td></tr>
<tr class="separator:a26babdede07e8e220002e420b9161aa9 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afab4c23ab2a15d11225934c9e4252881 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">_Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#afab4c23ab2a15d11225934c9e4252881">weightEps</a></td></tr>
<tr class="memdesc:afab4c23ab2a15d11225934c9e4252881 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">[<code>parameter</code>] Epsilon for weights solver, <code>default</code> = 1e-15  <a href="class_dem_1_1_dem_bones.html#afab4c23ab2a15d11225934c9e4252881">More...</a><br /></td></tr>
<tr class="separator:afab4c23ab2a15d11225934c9e4252881 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a277dac86c8474a12eb489bedf98ddee2 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a277dac86c8474a12eb489bedf98ddee2">nV</a></td></tr>
<tr class="memdesc:a277dac86c8474a12eb489bedf98ddee2 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of vertices, typically indexed by <code>i</code>.  <a href="class_dem_1_1_dem_bones.html#a277dac86c8474a12eb489bedf98ddee2">More...</a><br /></td></tr>
<tr class="separator:a277dac86c8474a12eb489bedf98ddee2 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0b51ddfe06be09fdf3c74a00f5dd867 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867">nB</a></td></tr>
<tr class="memdesc:aa0b51ddfe06be09fdf3c74a00f5dd867 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of bones, typically indexed by <code>j</code>.  <a href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867">More...</a><br /></td></tr>
<tr class="separator:aa0b51ddfe06be09fdf3c74a00f5dd867 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a913edb0e3273c6b18012c000a0764915 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915">nS</a></td></tr>
<tr class="memdesc:a913edb0e3273c6b18012c000a0764915 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of subjects, typically indexed by <code>s</code>.  <a href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915">More...</a><br /></td></tr>
<tr class="separator:a913edb0e3273c6b18012c000a0764915 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9cf74a32230ec9c61096a58cdc555bf inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#aa9cf74a32230ec9c61096a58cdc555bf">nF</a></td></tr>
<tr class="memdesc:aa9cf74a32230ec9c61096a58cdc555bf inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of total frames, typically indexed by <code>k</code>, <a class="el" href="class_dem_1_1_dem_bones.html#aa9cf74a32230ec9c61096a58cdc555bf" title="Number of total frames, typically indexed by k, nF = fStart(nS)">nF</a> = <a class="el" href="class_dem_1_1_dem_bones.html#adf3d4f2aa7408bb6a9db540e86fd69c7" title="Start frame indices, size = nS+1, fStart(s), fStart(s+1) are data frames for subject s.">fStart</a>(<a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>)  <a href="class_dem_1_1_dem_bones.html#aa9cf74a32230ec9c61096a58cdc555bf">More...</a><br /></td></tr>
<tr class="separator:aa9cf74a32230ec9c61096a58cdc555bf inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf3d4f2aa7408bb6a9db540e86fd69c7 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">Eigen::VectorXi&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#adf3d4f2aa7408bb6a9db540e86fd69c7">fStart</a></td></tr>
<tr class="memdesc:adf3d4f2aa7408bb6a9db540e86fd69c7 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start frame indices, <code>size</code> = <a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>+1, <a class="el" href="class_dem_1_1_dem_bones.html#adf3d4f2aa7408bb6a9db540e86fd69c7" title="Start frame indices, size = nS+1, fStart(s), fStart(s+1) are data frames for subject s.">fStart</a>(<code>s</code>), <a class="el" href="class_dem_1_1_dem_bones.html#adf3d4f2aa7408bb6a9db540e86fd69c7" title="Start frame indices, size = nS+1, fStart(s), fStart(s+1) are data frames for subject s.">fStart</a>(<code>s+1</code>) are data frames for subject <code>s</code>.  <a href="class_dem_1_1_dem_bones.html#adf3d4f2aa7408bb6a9db540e86fd69c7">More...</a><br /></td></tr>
<tr class="separator:adf3d4f2aa7408bb6a9db540e86fd69c7 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac99a3d810ab4fc1286e9677ce5c322b0 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">Eigen::VectorXi&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#ac99a3d810ab4fc1286e9677ce5c322b0">subjectID</a></td></tr>
<tr class="memdesc:ac99a3d810ab4fc1286e9677ce5c322b0 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subject index of the frame, <code>size</code> = <a class="el" href="class_dem_1_1_dem_bones.html#aa9cf74a32230ec9c61096a58cdc555bf" title="Number of total frames, typically indexed by k, nF = fStart(nS)">nF</a>, <a class="el" href="class_dem_1_1_dem_bones.html#ac99a3d810ab4fc1286e9677ce5c322b0" title="Subject index of the frame, size = nF, subjectID(k)=s, where fStart(s) &lt;= k &lt; fStart(s+1)">subjectID</a>(<code>k</code>)=<code>s</code>, where <a class="el" href="class_dem_1_1_dem_bones.html#adf3d4f2aa7408bb6a9db540e86fd69c7" title="Start frame indices, size = nS+1, fStart(s), fStart(s+1) are data frames for subject s.">fStart</a>(<code>s</code>) &lt;= <code>k</code> &lt; <a class="el" href="class_dem_1_1_dem_bones.html#adf3d4f2aa7408bb6a9db540e86fd69c7" title="Start frame indices, size = nS+1, fStart(s), fStart(s+1) are data frames for subject s.">fStart</a>(<code>s</code>+1)  <a href="class_dem_1_1_dem_bones.html#ac99a3d810ab4fc1286e9677ce5c322b0">More...</a><br /></td></tr>
<tr class="separator:ac99a3d810ab4fc1286e9677ce5c322b0 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae8731033731fbe34df518e15137724a inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#aae8731033731fbe34df518e15137724a">u</a></td></tr>
<tr class="memdesc:aae8731033731fbe34df518e15137724a inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Geometry at the rest poses, <code>size</code> = [3*<a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>, <a class="el" href="class_dem_1_1_dem_bones.html#a277dac86c8474a12eb489bedf98ddee2" title="Number of vertices, typically indexed by i.">nV</a>], <a class="el" href="class_dem_1_1_dem_bones.html#aae8731033731fbe34df518e15137724a" title="Geometry at the rest poses, size = [3*nS, nV], u.col(i).segment(3*s, 3) is the rest pose of vertex i ...">u</a>.<em>col</em>(<code>i</code>).<em>segment</em>(3*<code>s</code>, 3) is the rest pose of vertex <code>i</code> of subject <code>s</code>.  <a href="class_dem_1_1_dem_bones.html#aae8731033731fbe34df518e15137724a">More...</a><br /></td></tr>
<tr class="separator:aae8731033731fbe34df518e15137724a inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fa642adc3a5610f0a391fa5f437a9b3 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_dem_1_1_dem_bones.html#aa8ea3a6b166652e954decbf135b3255b">SparseMatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a8fa642adc3a5610f0a391fa5f437a9b3">w</a></td></tr>
<tr class="memdesc:a8fa642adc3a5610f0a391fa5f437a9b3 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Skinning weights, <code>size</code> = [<a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>, <a class="el" href="class_dem_1_1_dem_bones.html#a277dac86c8474a12eb489bedf98ddee2" title="Number of vertices, typically indexed by i.">nV</a>], <a class="el" href="class_dem_1_1_dem_bones.html#a8fa642adc3a5610f0a391fa5f437a9b3" title="Skinning weights, size = [nB, nV], w.col(i) are the skinning weights of vertex i, w(j,...">w</a>.<em>col</em>(<code>i</code>) are the skinning weights of vertex <code>i</code>, <a class="el" href="class_dem_1_1_dem_bones.html#a8fa642adc3a5610f0a391fa5f437a9b3" title="Skinning weights, size = [nB, nV], w.col(i) are the skinning weights of vertex i, w(j,...">w</a>(<code>j</code>, <code>i</code>) is the influence of bone <code>j</code> to vertex <code>i</code>.  <a href="class_dem_1_1_dem_bones.html#a8fa642adc3a5610f0a391fa5f437a9b3">More...</a><br /></td></tr>
<tr class="separator:a8fa642adc3a5610f0a391fa5f437a9b3 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a153f756d2284f955e35229f15753264c inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_dem_1_1_dem_bones.html#aee5cdd95063d2b11d8a461f0e2efa9f9">VectorX</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a153f756d2284f955e35229f15753264c">lockW</a></td></tr>
<tr class="memdesc:a153f756d2284f955e35229f15753264c inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Skinning weights lock control, <code>size</code> = <a class="el" href="class_dem_1_1_dem_bones.html#a277dac86c8474a12eb489bedf98ddee2" title="Number of vertices, typically indexed by i.">nV</a>, <a class="el" href="class_dem_1_1_dem_bones.html#a153f756d2284f955e35229f15753264c" title="Skinning weights lock control, size = nV, lockW(i) is the amount of input skinning weights will be ke...">lockW</a>(<code>i</code>) is the amount of input skinning weights will be kept for vertex <code>i</code>, where 0 (no lock) &lt;= <a class="el" href="class_dem_1_1_dem_bones.html#a153f756d2284f955e35229f15753264c" title="Skinning weights lock control, size = nV, lockW(i) is the amount of input skinning weights will be ke...">lockW</a>(<code>i</code>) &lt;= 1 (full lock)  <a href="class_dem_1_1_dem_bones.html#a153f756d2284f955e35229f15753264c">More...</a><br /></td></tr>
<tr class="separator:a153f756d2284f955e35229f15753264c inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3462ee570b8b809ecff8739000783813 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a3462ee570b8b809ecff8739000783813">m</a></td></tr>
<tr class="memdesc:a3462ee570b8b809ecff8739000783813 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bone transformations, <code>size</code> = [4*<a class="el" href="class_dem_1_1_dem_bones.html#aa9cf74a32230ec9c61096a58cdc555bf" title="Number of total frames, typically indexed by k, nF = fStart(nS)">nF</a>*4, 4*<a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>], <a class="el" href="class_dem_1_1_dem_bones.html#a3462ee570b8b809ecff8739000783813" title="Bone transformations, size = [4*nF*4, 4*nB], m.blk4(k, j) is the 4*4 relative transformation matrix o...">m</a>.<em>blk4</em>(<code>k</code>, <code>j</code>) is the 4*4 relative transformation matrix of bone <code>j</code> at frame <code>k</code>.  <a href="class_dem_1_1_dem_bones.html#a3462ee570b8b809ecff8739000783813">More...</a><br /></td></tr>
<tr class="separator:a3462ee570b8b809ecff8739000783813 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8391d148fee49d4c056b3b62bc1c7c08 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">Eigen::VectorXi&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a8391d148fee49d4c056b3b62bc1c7c08">lockM</a></td></tr>
<tr class="memdesc:a8391d148fee49d4c056b3b62bc1c7c08 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bone transformation lock control, <code>size</code> = <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>, <a class="el" href="class_dem_1_1_dem_bones.html#a8391d148fee49d4c056b3b62bc1c7c08" title="Bone transformation lock control, size = nB, lockM(j) is the amount of input transformations will be ...">lockM</a>(<code>j</code>) is the amount of input transformations will be kept for bone <code>j</code>, where <a class="el" href="class_dem_1_1_dem_bones.html#a8391d148fee49d4c056b3b62bc1c7c08" title="Bone transformation lock control, size = nB, lockM(j) is the amount of input transformations will be ...">lockM</a>(<code>j</code>) = 0 (no lock) or 1 (lock)  <a href="class_dem_1_1_dem_bones.html#a8391d148fee49d4c056b3b62bc1c7c08">More...</a><br /></td></tr>
<tr class="separator:a8391d148fee49d4c056b3b62bc1c7c08 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a276046cc5a2a13802762d65c17ec67fb inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">Eigen::Matrix&lt; _AniMeshScalar, Eigen::Dynamic, Eigen::Dynamic &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a276046cc5a2a13802762d65c17ec67fb">v</a></td></tr>
<tr class="memdesc:a276046cc5a2a13802762d65c17ec67fb inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Animated mesh sequence, <code>size</code> = [3*<a class="el" href="class_dem_1_1_dem_bones.html#aa9cf74a32230ec9c61096a58cdc555bf" title="Number of total frames, typically indexed by k, nF = fStart(nS)">nF</a>, <a class="el" href="class_dem_1_1_dem_bones.html#a277dac86c8474a12eb489bedf98ddee2" title="Number of vertices, typically indexed by i.">nV</a>], <a class="el" href="class_dem_1_1_dem_bones.html#a276046cc5a2a13802762d65c17ec67fb" title="Animated mesh sequence, size = [3*nF, nV], v.col(i).segment(3*k, 3) is the position of vertex i at fr...">v</a>.<em>col</em>(<code>i</code>).<em>segment</em>(3*<code>k</code>, 3) is the position of vertex <code>i</code> at frame <code>k</code>.  <a href="class_dem_1_1_dem_bones.html#a276046cc5a2a13802762d65c17ec67fb">More...</a><br /></td></tr>
<tr class="separator:a276046cc5a2a13802762d65c17ec67fb inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4f7e7cb1b5cdfd737ddfc9e682de6f5 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::vector&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#ac4f7e7cb1b5cdfd737ddfc9e682de6f5">fv</a></td></tr>
<tr class="memdesc:ac4f7e7cb1b5cdfd737ddfc9e682de6f5 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mesh topology, <code>size=</code>[<code>number of polygons</code>], <a class="el" href="class_dem_1_1_dem_bones.html#ac4f7e7cb1b5cdfd737ddfc9e682de6f5" title="Mesh topology, size=[number of polygons], fv[p] is the vector of vertex indices of polygon p.">fv</a>[<code>p</code>] is the vector of vertex indices of polygon <code>p</code>.  <a href="class_dem_1_1_dem_bones.html#ac4f7e7cb1b5cdfd737ddfc9e682de6f5">More...</a><br /></td></tr>
<tr class="separator:ac4f7e7cb1b5cdfd737ddfc9e682de6f5 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06065f12b701c9bb556b7a79d14e984b inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">const int &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#a06065f12b701c9bb556b7a79d14e984b">iter</a></td></tr>
<tr class="memdesc:a06065f12b701c9bb556b7a79d14e984b inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">[<code>zero indexed</code>, <code>read only</code>] Current global iteration number that can be used for callback functions  <a href="class_dem_1_1_dem_bones.html#a06065f12b701c9bb556b7a79d14e984b">More...</a><br /></td></tr>
<tr class="separator:a06065f12b701c9bb556b7a79d14e984b inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed55acae84af67a7e958c830b821e747 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">const int &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#aed55acae84af67a7e958c830b821e747">iterTransformations</a></td></tr>
<tr class="memdesc:aed55acae84af67a7e958c830b821e747 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">[<code>zero indexed</code>, <code>read only</code>] Current bone transformations update iteration number that can be used for callback functions  <a href="class_dem_1_1_dem_bones.html#aed55acae84af67a7e958c830b821e747">More...</a><br /></td></tr>
<tr class="separator:aed55acae84af67a7e958c830b821e747 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef1b9e1d0815f32c8f8374376c8d2c22 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memItemLeft" align="right" valign="top">const int &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dem_1_1_dem_bones.html#aef1b9e1d0815f32c8f8374376c8d2c22">iterWeights</a></td></tr>
<tr class="memdesc:aef1b9e1d0815f32c8f8374376c8d2c22 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="mdescLeft">&#160;</td><td class="mdescRight">[<code>zero indexed</code>, <code>read only</code>] Current weights update iteration number that can be used for callback functions  <a href="class_dem_1_1_dem_bones.html#aef1b9e1d0815f32c8f8374376c8d2c22">More...</a><br /></td></tr>
<tr class="separator:aef1b9e1d0815f32c8f8374376c8d2c22 inherit pub_attribs_class_dem_1_1_dem_bones"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class _Scalar, class _AniMeshScalar&gt;<br />
class Dem::DemBonesExt&lt; _Scalar, _AniMeshScalar &gt;</h3>

<p>Extended class to handle hierarchical skeleton with local rotations/translations and bind matrices. </p>
<p>Call <a class="el" href="class_dem_1_1_dem_bones_ext.html#a4be2b221fa273518adbd3fa2e2bc86d0" title="Local rotations, translations and global bind matrices of a subject.">computeRTB()</a> to get local rotations/translations and bind matrices after skinning decomposition is done and other data is set.</p>
<p><b>_Scalar</b> is the floating-point data type. <b>_AniMeshScalar</b> is the floating-point data type of mesh sequence <a class="el" href="class_dem_1_1_dem_bones.html#a276046cc5a2a13802762d65c17ec67fb" title="Animated mesh sequence, size = [3*nF, nV], v.col(i).segment(3*k, 3) is the position of vertex i at fr...">v</a>. </p>

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00031">31</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="af372c94208c01a28f9a57b6377223470"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af372c94208c01a28f9a57b6377223470">&#9670;&nbsp;</a></span>Matrix3</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::<a class="el" href="class_dem_1_1_dem_bones.html#aed480cb1bda1b33f20171f7f847c1b06">Matrix3</a> =  Eigen::Matrix&lt;_Scalar, 3, 3&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00037">37</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<a id="a7da7e93c85500a1a23855d85c5db08c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7da7e93c85500a1a23855d85c5db08c6">&#9670;&nbsp;</a></span>Matrix4</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::<a class="el" href="class_dem_1_1_dem_bones.html#ad2a018d01cdb2a44f8ee964ddb4e8278">Matrix4</a> =  Eigen::Matrix&lt;_Scalar, 4, 4&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00036">36</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<a id="a7bc7c59a436c5a0d217adef008bb0eb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7bc7c59a436c5a0d217adef008bb0eb3">&#9670;&nbsp;</a></span>MatrixX</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::<a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a> =  Eigen::Matrix&lt;_Scalar, Eigen::Dynamic, Eigen::Dynamic&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00035">35</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<a id="a039349271cd9bd256ba359f0eab2ac7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a039349271cd9bd256ba359f0eab2ac7c">&#9670;&nbsp;</a></span>SparseMatrix</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::<a class="el" href="class_dem_1_1_dem_bones.html#aa8ea3a6b166652e954decbf135b3255b">SparseMatrix</a> =  Eigen::SparseMatrix&lt;_Scalar&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00041">41</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<a id="aedb230a6a7eede0d751355b385e58938"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aedb230a6a7eede0d751355b385e58938">&#9670;&nbsp;</a></span>Triplet</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::<a class="el" href="class_dem_1_1_dem_bones.html#ac6f69fb5e7a91330f21f48ad9f019212">Triplet</a> =  Eigen::Triplet&lt;_Scalar&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00042">42</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<a id="af058734937a4b845b089291d4392f8ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af058734937a4b845b089291d4392f8ef">&#9670;&nbsp;</a></span>Vector3</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::<a class="el" href="class_dem_1_1_dem_bones.html#a9404399e2528175da18fd80d7d4fc4f9">Vector3</a> =  Eigen::Matrix&lt;_Scalar, 3, 1&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00040">40</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<a id="a033b6fd2dcf075cd48ed433f8a33cca1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a033b6fd2dcf075cd48ed433f8a33cca1">&#9670;&nbsp;</a></span>Vector4</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::<a class="el" href="class_dem_1_1_dem_bones.html#a0c30c98fb363f888345d86e5a11acd14">Vector4</a> =  Eigen::Matrix&lt;_Scalar, 4, 1&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00039">39</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<a id="ae4ea2e0183a87df169cb893c1a699709"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae4ea2e0183a87df169cb893c1a699709">&#9670;&nbsp;</a></span>VectorX</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::<a class="el" href="class_dem_1_1_dem_bones.html#aee5cdd95063d2b11d8a461f0e2efa9f9">VectorX</a> =  Eigen::Matrix&lt;_Scalar, Eigen::Dynamic, 1&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00038">38</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a582382217aeefd8d2fb93bcb6aad9875"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a582382217aeefd8d2fb93bcb6aad9875">&#9670;&nbsp;</a></span>DemBonesExt()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::<a class="el" href="class_dem_1_1_dem_bones_ext.html">DemBonesExt</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor and setting default parameters. </p>

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00099">99</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                 : <a class="code" href="class_dem_1_1_dem_bones_ext.html#a92939c0de147f8075754d9cbf66113fc">bindUpdate</a>(0) {</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <a class="code" href="class_dem_1_1_dem_bones_ext.html#a9fd6e95de36adee0d487786315da551f">clear</a>();</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    }</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a9fd6e95de36adee0d487786315da551f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9fd6e95de36adee0d487786315da551f">&#9670;&nbsp;</a></span>clear()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clear all data. </p>

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00105">105</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                 {</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <a class="code" href="class_dem_1_1_dem_bones_ext.html#aebbc9093e05f8d3a466fe40610f5289d">fTime</a>.resize(0);</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <a class="code" href="class_dem_1_1_dem_bones_ext.html#afcf732ef4b030e907b7054232cc255f5">boneName</a>.resize(0);</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <a class="code" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7">parent</a>.resize(0);</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <a class="code" href="class_dem_1_1_dem_bones_ext.html#a85422fd18d48c40485f05d77b1c4cf4d">bind</a>.resize(0, 0);</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <a class="code" href="class_dem_1_1_dem_bones_ext.html#a3785152d056860bc55febcad64837ef3">preMulInv</a>.resize(0, 0);</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <a class="code" href="class_dem_1_1_dem_bones_ext.html#a30f4bfbe88493adecae038035e0b33be">rotOrder</a>.resize(0, 0);</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <a class="code" href="class_dem_1_1_dem_bones_ext.html#a9a6a2004f16832cd3f97c22789147a8a">orient</a>.resize(0, 0);</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <a class="code" href="class_dem_1_1_dem_bones.html#a18bcd81e4238a4a298c4ee4ca78ae2fb">DemBones&lt;_Scalar, _AniMeshScalar&gt;::clear</a>();</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a4be2b221fa273518adbd3fa2e2bc86d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4be2b221fa273518adbd3fa2e2bc86d0">&#9670;&nbsp;</a></span>computeRTB()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::computeRTB </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a> &amp;&#160;</td>
          <td class="paramname"><em>lr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a> &amp;&#160;</td>
          <td class="paramname"><em>lt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a> &amp;&#160;</td>
          <td class="paramname"><em>gb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a> &amp;&#160;</td>
          <td class="paramname"><em>lbr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a> &amp;&#160;</td>
          <td class="paramname"><em>lbt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>degreeRot</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Local rotations, translations and global bind matrices of a subject. </p>
<p>Required all data in the base class: <a class="el" href="class_dem_1_1_dem_bones.html#aae8731033731fbe34df518e15137724a" title="Geometry at the rest poses, size = [3*nS, nV], u.col(i).segment(3*s, 3) is the rest pose of vertex i ...">u</a>, <a class="el" href="class_dem_1_1_dem_bones.html#ac4f7e7cb1b5cdfd737ddfc9e682de6f5" title="Mesh topology, size=[number of polygons], fv[p] is the vector of vertex indices of polygon p.">fv</a>, <a class="el" href="class_dem_1_1_dem_bones.html#a277dac86c8474a12eb489bedf98ddee2" title="Number of vertices, typically indexed by i.">nV</a>, <a class="el" href="class_dem_1_1_dem_bones.html#a276046cc5a2a13802762d65c17ec67fb" title="Animated mesh sequence, size = [3*nF, nV], v.col(i).segment(3*k, 3) is the position of vertex i at fr...">v</a>, <a class="el" href="class_dem_1_1_dem_bones.html#aa9cf74a32230ec9c61096a58cdc555bf" title="Number of total frames, typically indexed by k, nF = fStart(nS)">nF</a>, <a class="el" href="class_dem_1_1_dem_bones.html#adf3d4f2aa7408bb6a9db540e86fd69c7" title="Start frame indices, size = nS+1, fStart(s), fStart(s+1) are data frames for subject s.">fStart</a>, <a class="el" href="class_dem_1_1_dem_bones.html#ac99a3d810ab4fc1286e9677ce5c322b0" title="Subject index of the frame, size = nF, subjectID(k)=s, where fStart(s) &lt;= k &lt; fStart(s+1)">subjectID</a>, <a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>, <a class="el" href="class_dem_1_1_dem_bones.html#a3462ee570b8b809ecff8739000783813" title="Bone transformations, size = [4*nF*4, 4*nB], m.blk4(k, j) is the 4*4 relative transformation matrix o...">m</a>, <a class="el" href="class_dem_1_1_dem_bones.html#a8fa642adc3a5610f0a391fa5f437a9b3" title="Skinning weights, size = [nB, nV], w.col(i) are the skinning weights of vertex i, w(j,...">w</a>, <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a></p>
<p>This function will initialize missing attributes:</p><ul>
<li><a class="el" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7" title="Parent bone index, [size] = nB, parent(j) is the index of parent bone of j, parent(j) = -1 if j has n...">parent</a>: -1 vector (if no joint grouping) or parent to a root, [<code>size</code>] = <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a></li>
<li><a class="el" href="class_dem_1_1_dem_bones_ext.html#a3785152d056860bc55febcad64837ef3" title="Inverse pre-multiplication matrices, [size] = [4*nS, 4*nB], preMulInv.block(4*s, 4*j,...">preMulInv</a>: 4*4 identity matrix blocks, [<code>size</code>] = [4*<a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>, 4*<a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>]</li>
<li><a class="el" href="class_dem_1_1_dem_bones_ext.html#a30f4bfbe88493adecae038035e0b33be" title="Rotation order, [size] = [3*nS, nB], rotOrder.col(j).segment&lt;3&gt;(3*s) is the rotation order of bone j ...">rotOrder</a>: {0, 1, 2} vector blocks, [<code>size</code>] = [3*<a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>, <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>]</li>
<li><a class="el" href="class_dem_1_1_dem_bones_ext.html#a9a6a2004f16832cd3f97c22789147a8a" title="Orientations of bones, [size] = [3*nS, nB], orient.col(j).segment&lt;3&gt;(3*s) is the(rx,...">orient</a>: 0 matrix, [<code>size</code>] = [3*<a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>, <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>]</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>is the subject index </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">lr</td><td>is the [3*<code>nFr</code>, <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>] by-reference output local rotations, <code>lr</code>.<em>col</em>(<code>j</code>).segment&lt;3&gt;(3*<code>k</code>) is the (<code>rx</code>, <code>ry</code>, <code>rz</code>) of bone <code>j</code> at frame <code>k</code> </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">lt</td><td>is the [3*<code>nFr</code>, <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>] by-reference output local translations, <code>lt</code>.<em>col</em>(<code>j</code>).segment&lt;3&gt;(3*<code>k</code>) is the (<code>tx</code>, <code>ty</code>, <code>tz</code>) of bone <code>j</code> at frame <code>k</code> </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">gb</td><td>is the [4, 4*<a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>] by-reference output global bind matrices, <code>gb</code>.<em>block</em>(0, 4*<code>j</code>, 4, 4) is the bind matrix of bone j </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">lbr</td><td>is the [3, <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>] by-reference output local rotations at bind pose <code>lbr</code>.<em>col</em>(<code>j</code>).segment&lt;3&gt;(3*<code>k</code>) is the (<code>rx</code>, <code>ry</code>, <code>rz</code>) of bone <code>j</code> </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">lbt</td><td>is the [3, <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>] by-reference output local translations at bind pose, <code>lbt</code>.<em>col</em>(<code>j</code>).segment&lt;3&gt;(3*<code>k</code>) is the (<code>tx</code>, <code>ty</code>, <code>tz</code>) of bone <code>j</code> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">degreeRot=true</td><td>will output rotations in degree, otherwise output in radian </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00133">133</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                                                                                                                   {</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        computeBind(s, gb);</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7">parent</a>.size()==0) {</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="class_dem_1_1_dem_bones_ext.html#a92939c0de147f8075754d9cbf66113fc">bindUpdate</a>==2) {</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                <span class="keywordtype">int</span> root=computeRoot();</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                <a class="code" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7">parent</a>=Eigen::VectorXi::Constant(<a class="code" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867">nB</a>, root);</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                <a class="code" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7">parent</a>(root)=-1;</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;            } <span class="keywordflow">else</span> <a class="code" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7">parent</a>=Eigen::VectorXi::Constant(<a class="code" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867">nB</a>, -1);</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        }</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_dem_1_1_dem_bones_ext.html#a3785152d056860bc55febcad64837ef3">preMulInv</a>.size()==0) <a class="code" href="class_dem_1_1_dem_bones_ext.html#a3785152d056860bc55febcad64837ef3">preMulInv</a>=MatrixX::Identity(4, 4).replicate(<a class="code" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915">nS</a>, <a class="code" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867">nB</a>);</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_dem_1_1_dem_bones_ext.html#a30f4bfbe88493adecae038035e0b33be">rotOrder</a>.size()==0) <a class="code" href="class_dem_1_1_dem_bones_ext.html#a30f4bfbe88493adecae038035e0b33be">rotOrder</a>=Eigen::Vector3i(0, 1, 2).replicate(<a class="code" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915">nS</a>, <a class="code" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867">nB</a>);</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_dem_1_1_dem_bones_ext.html#a9a6a2004f16832cd3f97c22789147a8a">orient</a>.size()==0) <a class="code" href="class_dem_1_1_dem_bones_ext.html#a9a6a2004f16832cd3f97c22789147a8a">orient</a>=MatrixX::Zero(3*<a class="code" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915">nS</a>, <a class="code" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867">nB</a>);</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <span class="keywordtype">int</span> nFs=<a class="code" href="class_dem_1_1_dem_bones.html#adf3d4f2aa7408bb6a9db540e86fd69c7">fStart</a>(s+1)-<a class="code" href="class_dem_1_1_dem_bones.html#adf3d4f2aa7408bb6a9db540e86fd69c7">fStart</a>(s);</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        lr.resize(nFs*3, <a class="code" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867">nB</a>);</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        lt.resize(nFs*3, <a class="code" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867">nB</a>);</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        lbr.resize(3, <a class="code" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867">nB</a>);</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        lbt.resize(3, <a class="code" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867">nB</a>);</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        <a class="code" href="class_dem_1_1_dem_bones_ext.html#a7bc7c59a436c5a0d217adef008bb0eb3">MatrixX</a> lm(4*nFs, 4*<a class="code" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867">nB</a>);</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<span class="preprocessor">        #pragma omp parallel for</span></div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j=0; j&lt;<a class="code" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867">nB</a>; j++) {</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;            Eigen::Vector3i ro=<a class="code" href="class_dem_1_1_dem_bones_ext.html#a30f4bfbe88493adecae038035e0b33be">rotOrder</a>.col(j).template segment&lt;3&gt;(s*3);</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;            <a class="code" href="class_dem_1_1_dem_bones_ext.html#af058734937a4b845b089291d4392f8ef">Vector3</a> ov=<a class="code" href="class_dem_1_1_dem_bones_ext.html#a9a6a2004f16832cd3f97c22789147a8a">orient</a>.vec3(s, j)*EIGEN_PI/180;</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;            <a class="code" href="class_dem_1_1_dem_bones_ext.html#af372c94208c01a28f9a57b6377223470">Matrix3</a> invOM=<a class="code" href="class_dem_1_1_dem_bones_ext.html#af372c94208c01a28f9a57b6377223470">Matrix3</a>(Eigen::AngleAxis&lt;_Scalar&gt;(ov(ro(2)), Vector3::Unit(ro(2))))*</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                Eigen::AngleAxis&lt;_Scalar&gt;(ov(ro(1)), Vector3::Unit(ro(1)))*</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                Eigen::AngleAxis&lt;_Scalar&gt;(ov(ro(0)), Vector3::Unit(ro(0)));</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;            invOM.transposeInPlace();</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160; </div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;            <a class="code" href="class_dem_1_1_dem_bones_ext.html#a7da7e93c85500a1a23855d85c5db08c6">Matrix4</a> lb;</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7">parent</a>(j)==-1) lb=<a class="code" href="class_dem_1_1_dem_bones_ext.html#a3785152d056860bc55febcad64837ef3">preMulInv</a>.blk4(s, j)*gb.blk4(0, j);</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;            <span class="keywordflow">else</span> lb=<a class="code" href="class_dem_1_1_dem_bones_ext.html#a3785152d056860bc55febcad64837ef3">preMulInv</a>.blk4(s, j)*gb.blk4(0, <a class="code" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7">parent</a>(j)).inverse()*gb.blk4(0, j);</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160; </div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;            <a class="code" href="class_dem_1_1_dem_bones_ext.html#af058734937a4b845b089291d4392f8ef">Vector3</a> curRot=Vector3::Zero();</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;            toRot(invOM*lb.template topLeftCorner&lt;3, 3&gt;(), curRot, ro);</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;            lbr.col(j)=curRot;</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;            lbt.col(j)=lb.template topRightCorner&lt;3, 1&gt;();</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160; </div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;            <a class="code" href="class_dem_1_1_dem_bones_ext.html#a7da7e93c85500a1a23855d85c5db08c6">Matrix4</a> lm;</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k=0; k&lt;nFs; k++) {</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7">parent</a>(j)==-1) lm=<a class="code" href="class_dem_1_1_dem_bones_ext.html#a3785152d056860bc55febcad64837ef3">preMulInv</a>.blk4(s, j)*<a class="code" href="class_dem_1_1_dem_bones.html#a3462ee570b8b809ecff8739000783813">m</a>.blk4(k+<a class="code" href="class_dem_1_1_dem_bones.html#adf3d4f2aa7408bb6a9db540e86fd69c7">fStart</a>(s), j)*gb.blk4(0, j);</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                <span class="keywordflow">else</span> lm=<a class="code" href="class_dem_1_1_dem_bones_ext.html#a3785152d056860bc55febcad64837ef3">preMulInv</a>.blk4(s, j)*(<a class="code" href="class_dem_1_1_dem_bones.html#a3462ee570b8b809ecff8739000783813">m</a>.blk4(k+<a class="code" href="class_dem_1_1_dem_bones.html#adf3d4f2aa7408bb6a9db540e86fd69c7">fStart</a>(s), <a class="code" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7">parent</a>(j))*gb.blk4(0, <a class="code" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7">parent</a>(j))).inverse()*<a class="code" href="class_dem_1_1_dem_bones.html#a3462ee570b8b809ecff8739000783813">m</a>.blk4(k+<a class="code" href="class_dem_1_1_dem_bones.html#adf3d4f2aa7408bb6a9db540e86fd69c7">fStart</a>(s), j)*gb.blk4(0, j);</div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                toRot(invOM*lm.template topLeftCorner&lt;3, 3&gt;(), curRot, ro);</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                lr.vec3(k, j)=curRot;</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                lt.vec3(k, j)=lm.template topRightCorner&lt;3, 1&gt;();</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;            }</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        }</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="keywordflow">if</span> (degreeRot) {</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;            lr*=180/EIGEN_PI;</div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;            lbr*=180/EIGEN_PI;</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        }</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    }</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a85422fd18d48c40485f05d77b1c4cf4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85422fd18d48c40485f05d77b1c4cf4d">&#9670;&nbsp;</a></span>bind</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a> <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::bind</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Original bind pre-matrix, [<code>size</code>] = [4*<a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>, 4*<a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>], <a class="el" href="class_dem_1_1_dem_bones_ext.html#a85422fd18d48c40485f05d77b1c4cf4d" title="Original bind pre-matrix, [size] = [4*nS, 4*nB], bind.block(4*s, 4*j, 4, 4) is the global bind matrix...">bind</a>.<em>block</em>(4*<code>s</code>, 4*<code>j</code>, 4, 4) is the global bind matrix of bone <code>j</code> on subject <code>s</code> at the rest pose. </p>

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00083">83</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<a id="a92939c0de147f8075754d9cbf66113fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a92939c0de147f8075754d9cbf66113fc">&#9670;&nbsp;</a></span>bindUpdate</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::bindUpdate</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Bind transformation update, 0=keep original, 1=set translations to p-norm centroids (using <a class="el" href="class_dem_1_1_dem_bones.html#a3b125934b440ebcebb3ba44acda41366" title="[parameter] p-norm for bone translations affinity soft constraint, default = 4.0">transAffineNorm</a>) and rotations to identity, 2=do 1 and group joints. </p>

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00095">95</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<a id="afcf732ef4b030e907b7054232cc255f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afcf732ef4b030e907b7054232cc255f5">&#9670;&nbsp;</a></span>boneName</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;std::string&gt; <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::boneName</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Name of bones, [<code>size</code>] = <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>, <a class="el" href="class_dem_1_1_dem_bones_ext.html#afcf732ef4b030e907b7054232cc255f5" title="Name of bones, [size] = nB, boneName(j) is the name bone of j.">boneName</a>(<code>j</code>) is the name bone of <code>j</code>. </p>

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00077">77</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<a id="aebbc9093e05f8d3a466fe40610f5289d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebbc9093e05f8d3a466fe40610f5289d">&#9670;&nbsp;</a></span>fTime</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">Eigen::VectorXd <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::fTime</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Timestamps for bone transformations <a class="el" href="class_dem_1_1_dem_bones.html#a3462ee570b8b809ecff8739000783813" title="Bone transformations, size = [4*nF*4, 4*nB], m.blk4(k, j) is the 4*4 relative transformation matrix o...">m</a>, [<code>size</code>] = <a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>, <a class="el" href="class_dem_1_1_dem_bones_ext.html#aebbc9093e05f8d3a466fe40610f5289d" title="Timestamps for bone transformations m, [size] = nS, fTime(k) is the timestamp of frame k.">fTime</a>(<code>k</code>) is the timestamp of frame <code>k</code>. </p>

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00074">74</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<a id="a9a6a2004f16832cd3f97c22789147a8a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a6a2004f16832cd3f97c22789147a8a">&#9670;&nbsp;</a></span>orient</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a> <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::orient</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Orientations of bones, [<code>size</code>] = [3*<a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>, <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>], <code>orient</code>.<em>col</em>(<code>j</code>).<em>segment&lt;3&gt;</em>(3*<code>s</code>) is the(<code>rx</code>, <code>ry</code>, <code>rz</code>) orientation of bone <code>j</code> in degree. </p>

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00092">92</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<a id="ad740868b3bc6cdf34e6e2ec5f35e24d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad740868b3bc6cdf34e6e2ec5f35e24d7">&#9670;&nbsp;</a></span>parent</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">Eigen::VectorXi <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::parent</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parent bone index, [<code>size</code>] = <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>, <a class="el" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7" title="Parent bone index, [size] = nB, parent(j) is the index of parent bone of j, parent(j) = -1 if j has n...">parent</a>(<code>j</code>) is the index of parent bone of <code>j</code>, <a class="el" href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7" title="Parent bone index, [size] = nB, parent(j) is the index of parent bone of j, parent(j) = -1 if j has n...">parent</a>(<code>j</code>) = -1 if <code>j</code> has no parent. </p>

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00080">80</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<a id="a3785152d056860bc55febcad64837ef3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3785152d056860bc55febcad64837ef3">&#9670;&nbsp;</a></span>preMulInv</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_dem_1_1_dem_bones.html#a5e4b99c4a233b477116204f9f1fae9cd">MatrixX</a> <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::preMulInv</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Inverse pre-multiplication matrices, [<code>size</code>] = [4*<a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>, 4*<a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>], <a class="el" href="class_dem_1_1_dem_bones_ext.html#a3785152d056860bc55febcad64837ef3" title="Inverse pre-multiplication matrices, [size] = [4*nS, 4*nB], preMulInv.block(4*s, 4*j,...">preMulInv</a>.<em>block</em>(4*<code>s</code>, 4*<code>j</code>, 4, 4) is the inverse of pre-local transformation of bone <code>j</code> on subject <code>s</code>. </p>

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00086">86</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<a id="a30f4bfbe88493adecae038035e0b33be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30f4bfbe88493adecae038035e0b33be">&#9670;&nbsp;</a></span>rotOrder</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Scalar , class _AniMeshScalar &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">Eigen::MatrixXi <a class="el" href="class_dem_1_1_dem_bones_ext.html">Dem::DemBonesExt</a>&lt; _Scalar, _AniMeshScalar &gt;::rotOrder</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Rotation order, [<code>size</code>] = [3*<a class="el" href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915" title="Number of subjects, typically indexed by s.">nS</a>, <a class="el" href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867" title="Number of bones, typically indexed by j.">nB</a>], <a class="el" href="class_dem_1_1_dem_bones_ext.html#a30f4bfbe88493adecae038035e0b33be" title="Rotation order, [size] = [3*nS, nB], rotOrder.col(j).segment&lt;3&gt;(3*s) is the rotation order of bone j ...">rotOrder</a>.<em>col</em>(<code>j</code>).<em>segment&lt;3&gt;</em>(3*<code>s</code>) is the rotation order of bone <code>j</code> on subject <code>s</code>, 0=<code>X</code>, 1=<code>Y</code>, 2=<code>Z</code>, e.g. {0, 1, 2} is <code>XYZ</code> order <br  />
 </p>

<p class="definition">Definition at line <a class="el" href="_dem_bones_ext_8h_source.html#l00089">89</a> of file <a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/DemBones/<a class="el" href="_dem_bones_ext_8h_source.html">DemBonesExt.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclass_dem_1_1_dem_bones_html_a3462ee570b8b809ecff8739000783813"><div class="ttname"><a href="class_dem_1_1_dem_bones.html#a3462ee570b8b809ecff8739000783813">Dem::DemBones::m</a></div><div class="ttdeci">MatrixX m</div><div class="ttdoc">Bone transformations, size = [4*nF*4, 4*nB], m.blk4(k, j) is the 4*4 relative transformation matrix o...</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_8h_source.html#l00139">DemBones.h:139</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_ext_html_a7bc7c59a436c5a0d217adef008bb0eb3"><div class="ttname"><a href="class_dem_1_1_dem_bones_ext.html#a7bc7c59a436c5a0d217adef008bb0eb3">Dem::DemBonesExt::MatrixX</a></div><div class="ttdeci">Eigen::Matrix&lt; _Scalar, Eigen::Dynamic, Eigen::Dynamic &gt; MatrixX</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_ext_8h_source.html#l00035">DemBonesExt.h:35</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_html_adf3d4f2aa7408bb6a9db540e86fd69c7"><div class="ttname"><a href="class_dem_1_1_dem_bones.html#adf3d4f2aa7408bb6a9db540e86fd69c7">Dem::DemBones::fStart</a></div><div class="ttdeci">Eigen::VectorXi fStart</div><div class="ttdoc">Start frame indices, size = nS+1, fStart(s), fStart(s+1) are data frames for subject s.</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_8h_source.html#l00123">DemBones.h:123</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_ext_html_a3785152d056860bc55febcad64837ef3"><div class="ttname"><a href="class_dem_1_1_dem_bones_ext.html#a3785152d056860bc55febcad64837ef3">Dem::DemBonesExt::preMulInv</a></div><div class="ttdeci">MatrixX preMulInv</div><div class="ttdoc">Inverse pre-multiplication matrices, [size] = [4*nS, 4*nB], preMulInv.block(4*s, 4*j,...</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_ext_8h_source.html#l00086">DemBonesExt.h:86</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_ext_html_a9a6a2004f16832cd3f97c22789147a8a"><div class="ttname"><a href="class_dem_1_1_dem_bones_ext.html#a9a6a2004f16832cd3f97c22789147a8a">Dem::DemBonesExt::orient</a></div><div class="ttdeci">MatrixX orient</div><div class="ttdoc">Orientations of bones, [size] = [3*nS, nB], orient.col(j).segment&lt;3&gt;(3*s) is the(rx,...</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_ext_8h_source.html#l00092">DemBonesExt.h:92</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_ext_html_a9fd6e95de36adee0d487786315da551f"><div class="ttname"><a href="class_dem_1_1_dem_bones_ext.html#a9fd6e95de36adee0d487786315da551f">Dem::DemBonesExt::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Clear all data.</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_ext_8h_source.html#l00105">DemBonesExt.h:105</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_ext_html_af372c94208c01a28f9a57b6377223470"><div class="ttname"><a href="class_dem_1_1_dem_bones_ext.html#af372c94208c01a28f9a57b6377223470">Dem::DemBonesExt::Matrix3</a></div><div class="ttdeci">Eigen::Matrix&lt; _Scalar, 3, 3 &gt; Matrix3</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_ext_8h_source.html#l00037">DemBonesExt.h:37</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_ext_html_aebbc9093e05f8d3a466fe40610f5289d"><div class="ttname"><a href="class_dem_1_1_dem_bones_ext.html#aebbc9093e05f8d3a466fe40610f5289d">Dem::DemBonesExt::fTime</a></div><div class="ttdeci">Eigen::VectorXd fTime</div><div class="ttdoc">Timestamps for bone transformations m, [size] = nS, fTime(k) is the timestamp of frame k.</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_ext_8h_source.html#l00074">DemBonesExt.h:74</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_html_a913edb0e3273c6b18012c000a0764915"><div class="ttname"><a href="class_dem_1_1_dem_bones.html#a913edb0e3273c6b18012c000a0764915">Dem::DemBones::nS</a></div><div class="ttdeci">int nS</div><div class="ttdoc">Number of subjects, typically indexed by s.</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_8h_source.html#l00118">DemBones.h:118</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_ext_html_af058734937a4b845b089291d4392f8ef"><div class="ttname"><a href="class_dem_1_1_dem_bones_ext.html#af058734937a4b845b089291d4392f8ef">Dem::DemBonesExt::Vector3</a></div><div class="ttdeci">Eigen::Matrix&lt; _Scalar, 3, 1 &gt; Vector3</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_ext_8h_source.html#l00040">DemBonesExt.h:40</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_ext_html_a85422fd18d48c40485f05d77b1c4cf4d"><div class="ttname"><a href="class_dem_1_1_dem_bones_ext.html#a85422fd18d48c40485f05d77b1c4cf4d">Dem::DemBonesExt::bind</a></div><div class="ttdeci">MatrixX bind</div><div class="ttdoc">Original bind pre-matrix, [size] = [4*nS, 4*nB], bind.block(4*s, 4*j, 4, 4) is the global bind matrix...</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_ext_8h_source.html#l00083">DemBonesExt.h:83</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_ext_html_ad740868b3bc6cdf34e6e2ec5f35e24d7"><div class="ttname"><a href="class_dem_1_1_dem_bones_ext.html#ad740868b3bc6cdf34e6e2ec5f35e24d7">Dem::DemBonesExt::parent</a></div><div class="ttdeci">Eigen::VectorXi parent</div><div class="ttdoc">Parent bone index, [size] = nB, parent(j) is the index of parent bone of j, parent(j) = -1 if j has n...</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_ext_8h_source.html#l00080">DemBonesExt.h:80</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_ext_html_a92939c0de147f8075754d9cbf66113fc"><div class="ttname"><a href="class_dem_1_1_dem_bones_ext.html#a92939c0de147f8075754d9cbf66113fc">Dem::DemBonesExt::bindUpdate</a></div><div class="ttdeci">int bindUpdate</div><div class="ttdoc">Bind transformation update, 0=keep original, 1=set translations to p-norm centroids (using transAffin...</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_ext_8h_source.html#l00095">DemBonesExt.h:95</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_html_aa0b51ddfe06be09fdf3c74a00f5dd867"><div class="ttname"><a href="class_dem_1_1_dem_bones.html#aa0b51ddfe06be09fdf3c74a00f5dd867">Dem::DemBones::nB</a></div><div class="ttdeci">int nB</div><div class="ttdoc">Number of bones, typically indexed by j.</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_8h_source.html#l00116">DemBones.h:116</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_ext_html_afcf732ef4b030e907b7054232cc255f5"><div class="ttname"><a href="class_dem_1_1_dem_bones_ext.html#afcf732ef4b030e907b7054232cc255f5">Dem::DemBonesExt::boneName</a></div><div class="ttdeci">std::vector&lt; std::string &gt; boneName</div><div class="ttdoc">Name of bones, [size] = nB, boneName(j) is the name bone of j.</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_ext_8h_source.html#l00077">DemBonesExt.h:77</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_ext_html_a30f4bfbe88493adecae038035e0b33be"><div class="ttname"><a href="class_dem_1_1_dem_bones_ext.html#a30f4bfbe88493adecae038035e0b33be">Dem::DemBonesExt::rotOrder</a></div><div class="ttdeci">Eigen::MatrixXi rotOrder</div><div class="ttdoc">Rotation order, [size] = [3*nS, nB], rotOrder.col(j).segment&lt;3&gt;(3*s) is the rotation order of bone j ...</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_ext_8h_source.html#l00089">DemBonesExt.h:89</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_html_a18bcd81e4238a4a298c4ee4ca78ae2fb"><div class="ttname"><a href="class_dem_1_1_dem_bones.html#a18bcd81e4238a4a298c4ee4ca78ae2fb">Dem::DemBones::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Clear all data.</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_8h_source.html#l00161">DemBones.h:161</a></div></div>
<div class="ttc" id="aclass_dem_1_1_dem_bones_ext_html_a7da7e93c85500a1a23855d85c5db08c6"><div class="ttname"><a href="class_dem_1_1_dem_bones_ext.html#a7da7e93c85500a1a23855d85c5db08c6">Dem::DemBonesExt::Matrix4</a></div><div class="ttdeci">Eigen::Matrix&lt; _Scalar, 4, 4 &gt; Matrix4</div><div class="ttdef"><b>Definition:</b> <a href="_dem_bones_ext_8h_source.html#l00036">DemBonesExt.h:36</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespace_dem.html">Dem</a></li><li class="navelem"><a class="el" href="class_dem_1_1_dem_bones_ext.html">DemBonesExt</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
  </ul>
</div>
</body>
</html>
